package date时间.SimpleDateFormat对象;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Date1 {
    public static void main(String[] args) throws ParseException {
        //创建对象，表示一个时间
        Date d1 = new Date();
        //无参时，输出系统时间
        System.out.println(d1);

        //输出时间原点,0表示从时间原点开始经历了0毫秒；
        Date d2 = new Date(0l);//l表示long长整型
        System.out.println(d2);//Thu Jan 01 08:00:00 CST 1970

        Date d3 = new Date(1000l);//0表示从时间原点开始经历了1000毫秒,即1秒
        System.out.println(d3);//Thu Jan 01 08:00:01 CST 1970

        //设置时间
        d2.setTime(10000l);//设置时间,仍然以时间原点为起点计算
        System.out.println(d2);//Thu Jan 01 08:00:10 CST 1970

        //获取时间毫秒值
        long time = d2.getTime();
        System.out.println(time);

        System.out.println("----------------------------");
        //格式化输出日期
        //例一，无参
        SimpleDateFormat s = new SimpleDateFormat();
        String f1 = s.format(d1);//格式化，将系统时间赋值给s
        System.out.println(f1);

        //例二，有参E表示输出星期，yyyy:年 MM月 dd:日 HH：时 mm:分钟 ss:秒 ，以上为固定格式，E表示星期
        SimpleDateFormat s2 = new SimpleDateFormat("yyyy年MM月dd日 E HH:mm:ss");
        SimpleDateFormat s3 = new SimpleDateFormat("yyyy-MM-dd E HH-mm-ss");
        String f2 = s2.format(d1);
        System.out.println(f2);

        String f3 = s3.format(d1);
        System.out.println(f3);

        //解析日期
        //text:,将字符串以我需要的格式输出
        String str = "2003-8-26 06:30:00";
        SimpleDateFormat s4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//里面的格式需要以str字符串格式一致
        Date p1 = s4.parse(str);//将字符串解析成一个Date对象,便于使用Date对象的相关方法，如
        /*
        long time1 = p1.getTime();
        System.out.println(time1);
        */
        System.out.println(p1);//Tue Aug 26 06:30:00 CST 2003

        SimpleDateFormat s5 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");//我想要的格式
        String f4 = s5.format(p1);
        System.out.println(f4);//2003年08月26日 06:30:00

    }
}
